/** CS2340 40 Jiggawatt Hard Driver Project
 *  Suk Hwan Hong
 *  Rhys Saraceni
 *  Travis Cooper
 *  Luke Stubb
 */

// $codepro.audit.disable com.instantiations.assist.eclipse.analysis.audit.rule.effectivejava.alwaysOverridetoString.alwaysOverrideToString
package edu.gatech.jiggawatt.office.model;

import java.io.Serializable;

/**
 * @author 40 Jiggawatt Hard Driver
 * @version 1.0 
 */
public class Patient extends User implements Serializable {
	
    /**
     * Field pharmacy.
     */
    private String pharmacy;
    
    /**
     * Field insurance.
     */
    private String insurance;
    
    /**
     * Field allergies.
     */
    private String allergies;
    
    /**
     * Field app.
     */
    private Appointment app;
    
    /**
     * Field tr.
     */
    private TreatmentRecord tr;
    
    /**
     * Field order.
     */
    private DoctorsOrder order;
    
    /**
     * Field invoice.
     */
    private PatientInvoice invoice;
    
    /**
     * Constructor for Patient.
     * @param id String
     * @param pw String
     * @param firstName String
     * @param lastName String
     */
    public Patient(String id, String pw, String firstName, String lastName) {
    	super(id, pw, firstName, lastName, 1);
    }

	/**
	 * Method setAllergies.
	 * @param allergies String
	 */
	public void setAllergies(String allergies) {
		this.allergies = allergies;
	}

	/**
	 * Method getAllergies.
	 * @return String
	 */
	public String getAllergies() {
		return allergies;
	}

	/**
	 * Method setInsurance.
	 * @param insurance String
	 */
	public void setInsurance(String insurance) {
		this.insurance = insurance;
	}

	/**
	 * Method getInsurance.
	 * @return String
	 */
	public String getInsurance() {
		return insurance;
	}

	/**
	 * Method setPharmacy.
	 * @param pharmacy String
	 */
	public void setPharmacy(String pharmacy) {
		this.pharmacy = pharmacy;
	}

	/**
	 * Method getPharmacy.
	 * @return String
	 */
	public String getPharmacy() {
		return pharmacy;
	}

	/**
	 * Method addAppointment.
	 * @param app Appointment
	 */
	public void addAppointment(Appointment app){
		this.app = app;
		
	}

	/**
	 * Method addTreatmentRecord.
	 * @param tr TreatmentRecord
	 */
	public void addTreatmentRecord(TreatmentRecord tr) {
		this.tr = tr;
		
	}

	/**
	 * Method updateTreatmentRecord.
	 * @param tr TreatmentRecord
	 */
	public void updateTreatmentRecord(TreatmentRecord tr) {
		this.tr = tr;
		
	}

	/**
	 * Method addDoctorsOrder.
	 * @param order DoctorsOrder
	 */
	public void addDoctorsOrder(DoctorsOrder order) {
		this.order = order;
		
	}

	/**
	 * Method setPatientInvoice.
	 * @param invoice PatientInvoice
	 */
	public void setPatientInvoice(PatientInvoice invoice) {
		this.invoice = invoice;
	}

	/**
	 * Method getPatientInvoice.
	 * @return PatientInvoice
	 */
	public PatientInvoice getPatientInvoice() {
		return invoice;
	}
}